package teste_uc;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;


import br.fatec.dominio.Empresa;
import br.fatec.dominio.INMantemConvenio;
import br.fatec.dominio.INMantemConvenioImpl;
import br.fatec.dominio.INMantemEmpresa;
import br.fatec.dominio.INMantemEmpresaImpl;
import br.fatec.dominio.SGE_WEB;
import br.fatec.servico.DAOFactory;
import br.fatec.servico.MySQLDAOFactory;
import br.fatec.servico.MySQLEmpresaDAO;
import br.fatec.servico.MySQLUsuarioDAO;

public class UC01CadastrarEmpresa {

    INMantemEmpresa mantemEmpresa2; //configure build path - add um external jar acha esta interface
	SGE_WEB sgeweb;
	INMantemEmpresa mantemEmpresa;
	INMantemConvenio mantemConvenio;
	Empresa empresa;
	@Before
	public void setUp() throws Exception {
		mantemEmpresa = new INMantemEmpresaImpl();
		mantemConvenio = new INMantemConvenioImpl();
		sgeweb = new SGE_WEB(mantemEmpresa, mantemConvenio);
		empresa = new Empresa();
		empresa.setCodigo(4444);
		empresa.setCnpj("4444");
		empresa.setNome("Casas Bahia");
		empresa.setNomeFantasia("Casas Bahia S/A");
		empresa.setEndereco("av. paulista");
		empresa.setTelefone("2222");
	}
	/*
	 * Teste da camada de servico
	 */
	@Test
	public final void CT01Valida_getEmpresaDAO() {
		assertTrue(DAOFactory.getDAOFactory(DAOFactory.MYSQL).getEmpresaDAO() instanceof MySQLEmpresaDAO);
	}
	@Test
	public final void CT02ValidaConexao_com_sucesso() {
		assertNotNull("valida a conexao =>", MySQLDAOFactory.criaConexao());
	}
	@Test
	public final void CT03CadastraEmpresa_com_sucesso() {
		assertEquals("cadastro realizado com sucesso",mantemEmpresa.cadastraEmpresa(empresa));
	}
	/*
	 * Teste da camada de dominio
	 */
	@Test
	public final void CT04UC01FBCadastraEmpresa_com_sucesso(){
	assertEquals( "cadastro realizado com sucesso", sgeweb.incluiEmpresa("4444", "4444","Casas Bahia", "casas bahia", "r carlos silca", "1111") );
		
	}
	@After
	public void tearDown() throws Exception {
		MySQLEmpresaDAO empresaDAO = new MySQLEmpresaDAO(); 
		empresaDAO.exclui("4444");
	}
}
